GDI+ Structures

Structures used by the GDI+ Flat API functions. Some of them have been prefixed with “Gp” to avoid name conflicts with other structures with the same name.

Name Description
BitmapData Stores attributes of a Bbitmap object.
BlurParams Contains members that specify the nature of a Gaussian blur.
BrightnessContrastParams Contains members that specify a the nature of a brightness or contrast adjustment.
ColorBalanceParams Contains members that specify the nature of a color balance adjustment.
ColorLUTParams Contains members (color lookup tables) that specify color adjustments to a bitmap.
ColorMatrix Contains a 5x5 matrix of real numbers.
ColorPalette Defines an array of colors that make up a color palette.
EncoderParameter Holds a parameter that can be passed to an image encoder.
EncoderParameters An array of EncoderParameter structures along with a data member that specifies the number of EncoderParameter structures in the array.
ENHMETAHEADER Contains enhanced-metafile data including the dimensions of the metafile image, the number of records in the metafile, and the resolution of the device on which the metafile was created.
GdiplusStartupInput Holds a block of arguments that are required by the GdiplusStartup function.
GdiplusStartupOutput Used by the GdiplusStartup function to return (in its output parameter) a pointer to a hook function and a pointer to an unhook function.
GpCharacterRange Specifies a range of character positions within a string.
GpColorMap Contains two COLORREF values.
GpPathData Used to get or set the data points (and their types) of a path.
GpPointF Encapsulates a point in a 2-D coordinate system.
GpRectF Defines a rectangle.
GpSizeF Encapsulates a Width and Height dimension in a 2-D coordinate system.
HueSaturationLightnessParams Contains members that specify hue, saturation and lightness adjustments to a bitmap.
ImageCodecInfo Stores information about an image codec (encoder/decoder).
LevelsParams Contains members that specify adjustments to the light, midtone, or dark areas of a bitmap.
MetafileHeader Stores properties of an associated metafile.
PropertyItem Holds one piece of image metadata.
PWMFRect16 Defines a rectangle that bounds a placeable metafile.
RedEyeCorrectionParams Contains members that specify the areas of a bitmap to which a red-eye correction is applied.
SharpenParams Contains members that specify the nature of a sharpening adjustment to a bitmap.
TintParams Contains members that specify the nature of a tint adjustment to a bitmap.
WmfPlaceableFileHeader Defines the fields of a placeable metafile header.

BitmapData

Stores attributes of a Bitmap objec. The BitmapData structure is used by the GdpiBitmapLockBits and GdpiBitmapUnlockBits functions.

Member Description
Width UINT. Number of pixels in one scan line of the bitmap.
Height UINT. Number of scan lines in the bitmap.
Stride INT.Offset, in bytes, between consecutive scan lines of the bitmap. If the stride is positive, the bitmap is top-down. If the stride is negative, the bitmap is bottom-up.
PixelFormat INT. The pixel format of the bitmap.
Scan0 ANY PTR. Pointer to the first (index 0) scan line of the bitmap.
Reserved UINT_PTR. Reserved for future use.

BlurParams

A BlurParams structure contains members that specify the nature of a Gaussian blur.

You can apply a Gaussian blur effect to a bitmap by following these steps.

  1. Create and initialize a BlurParams structure.
  2. Pass the address of the BlurParams structure to the GdipSetEffectParameters function.
Member Description
radius REAL. Real number that specifies the blur radius (the radius of the Gaussian convolution kernel) in pixels. The radius must be in the range 0 through 255. As the radius increases, the resulting bitmap becomes more blurry.
expandEdge BOOL. Boolean value that specifies whether the bitmap expands by an amount equal to the blur radius. If TRUE, the bitmap expands by an amount equal to the radius so that it can have soft edges. If FALSE, the bitmap remains the same size and the soft edges are clipped.

Remarks: Minimum availability: GDI+ 1.1


BrightnessContrastParams

A BrightnessContrastParams structure contains members that specify a the nature of a brightness or contrast adjustment.

You can change the brightness or contrast (or both) of a bitmap by following these steps.

  1. Create and initialize a BrightnessContrastParams structure.
  2. Pass the address of the BrightnessContrastParams structure to the GdipSetEffectParameters function.
Member Description
brightnessLevel INT. Integer in the range -255 through 255 that specifies the brightness level. If the value is 0, the brightness remains the same. As the value moves from 0 to 255, the brightness of the image increases. As the value moves from 0 to -255, the brightness of the image decreases.
contrastLevel INT. Integer in the range -100 through 100 that specifies the contrast level. If the value is 0, the contrast remains the same. As the value moves from 0 to 100, the contrast of the image increases. As the value moves from 0 to -100, the contrast of the image decreases.

Remarks: Minimum availability: GDI+ 1.1


ColorBalanceParams

A ColorBalanceParams structure contains members that specify the nature of a color balance adjustment.

You can change the color balance of a bitmap by following these steps.

  1. Create and initialize a ColorBalanceParams structure.
  2. Pass the address of the ColorBalanceParams structure to the GdipSetEffectParameters function.
Member Description
cyanRed INT. Integer in the range -100 through 100 that specifies a change in the amount of red in the image. If the value is 0, there is no change. As the value moves from 0 to 100, the amount of red in the image increases and the amount of cyan decreases. As the value moves from 0 to -100, the amount of red in the image decreases and the amount of cyan increases.
magentaGreen INT. Integer in the range -100 through 100 that specifies a change in the amount of green in the image. If the value is 0, there is no change. As the value moves from 0 to 100, the amount of green in the image increases and the amount of magenta decreases. As the value moves from 0 to -100, the amount of green in the image decreases and the amount of magenta increases.
yellowBlue INT. Integer in the range -100 through 100 that specifies a change in the amount of blue in the image. If the value is 0, there is no change. As the value moves from 0 to 100, the amount of blue in the image increases and the amount of yellow decreases. As the value moves from 0 to -100, the amount of blue in the image decreases and the amount of yellow increases.

ColorLUTParams

A ColorLUTParams structure contains members (color lookup tables) that specify color adjustments to a bitmap.

You can apply a custom adjustment to a bitmap by following these steps.

  1. Create a ColorLUTParams structure.
  2. Each member of the ColorLUTParams structure is a color lookup table (array of 256 bytes) for a particular color channel, alpha, red, green, or blue. Assign values of your choice to the four lookup tables.
  3. Pass the address of the ColorLUTParams structure to the ColorLUT::SetParameters method of a ColorLUT object.
  4. Pass the address of the ColorLUT object to the Graphics::DrawImage method or to the Bitmap::ApplyEffect method.
Member Description
lutB (0 TO 255) Array of 256 bytes that specifies the adjustment for the blue channel.
lutG (0 TO 255) Array of 256 bytes that specifies the adjustment for the green channel.
lutR (0 TO 255) Array of 256 bytes that specifies the adjustment for the red channel.
lutA (0 TO 255) Array of 256 bytes that specifies the adjustment for the alpha channel.

Remarks

A lookup table specifies how existing color channel values should be replaced by new values. A color channel value of j is replaced by the jth entry in the lookup table for that channel. For example, an existing blue channel value of 25 would be replaced by the value of lutB(25).


ColorMatrix

The ColorMatrix structure contains a 5x5 matrix of real numbers. Several of the ImageAttributes functions adjust image colors by using a color matrix. Alias: GpColorMatrix.

m(0 to 4, 0 to 4) as REAL

Use an array (0 TO 4, 0 TO 4) AS SINGLE, and pass @array(0, 0)

Remarks

A 5x5 color matrix is a homogeneous matrix for a 4-space transformation. The element in the fifth row and fifth column of a 5x5 homogeneous matrix must be 1, and all of the other elements in the fifth column must be 0. Color matrices are used to transform color vectors. The first four components of a color vector hold the red, green, blue, and alpha components (in that order) of a color. The fifth component of a color vector is always 1.


ColorPalette

The ColorPalette structure defines an array of colors that make up a color palette. The colors are 32-bit ARGB colors.

Member Description
Flags UINT. Combination of flags from the PaletteFlags enumeration.
Count UINT. Number of elements in the Entries array.
Entries UINT. Variable length array of ARGB colors.

To ease the use of this structure, GpColorPalette defines Entries as an array (2 TO 255) of ARGB colors.


EncoderParameter

An EncoderParameter structure holds a parameter that can be passed to an image encoder. An EncoderParameter structure can also be used to receive a list of possible values supported by a particular parameter of a particular image encoder.

Member Description
Guid GUID. Identifies the parameter category. GUIDs that represent various parameter categories (EncoderCompression, EncoderColorDepth, and the like) are defined in “GdiPlus constamts”.
NumberOfValues ULONG. Number of values in the array pointed to by the Value data member.
Type ULONG. Identifies the data type of the parameter. The EncoderParameterValueType enumeration defines several possible value types.
Value ANY PTR. Pointer to an array of values. Each value has the type specified by the Type data member..
' // Encoder parameter GUIDs
Dim Shared EncoderChrominanceTable AS GUID = Type(&hF2E455DC, &h09B3, &h4316, {&h82, &h60, &h67, &h6A, &hDA, &h32, &h48, &h1C})
Dim Shared EncoderColorDepth       AS GUID = Type(&h66087055, &hAD66, &h4C7C, {&h9A, &h18, &h38, &hA2, &h31, &h0B, &h83, &h37})
Dim Shared EncoderColorSpace       AS GUID = Type(&hAE7A62A0, &hEE2C, &h49D8, {&h9D, &h07, &h16, &hAF, &h4E, &h4D, &hBD, &h1E})
Dim Shared EncoderCompression      AS GUID = Type(&hECCBFEFF, &h4F77, &h4D61, {&h8A, &hB9, &h6A, &h51, &hF6, &hD3, &h8E, &h8B})
Dim Shared EncoderImageItems       AS GUID = Type(&h63875E13, &h1F1D, &h45AB, {&h91, &h95, &hCF, &h0F, &h5A, &h0C, &hBE, &h1B})
Dim Shared EncoderLuminanceTable   AS GUID = Type(&hEDB33BCE, &h0266, &h4A77, {&hB9, &h04, &h27, &h21, &h60, &h99, &hE7, &h17})
Dim Shared EncoderQuality          AS GUID = Type(&h1D5BE4B5, &hFA4A, &h452D, {&h9C, &hDD, &h5D, &hB3, &h51, &h05, &hE7, &hEB})
Dim Shared EncoderRenderMethod     AS GUID = Type(&h6DB9FCAA, &h0E84, &h485E, {&h9A, &h8D, &h1E, &h8B, &h12, &h1F, &h0C, &hC1})
Dim Shared EncoderSaveAsCMYK       AS GUID = Type(&hC617F8E1, &h1E5F, &h4B1F, {&hA6, &hD3, &h5E, &h1D, &h73, &h6C, &h6A, &h1D})
Dim Shared EncoderSaveFlag         AS GUID = Type(&h292266FC, &hAC40, &h47BF, {&h8C, &hFC, &hA8, &h5B, &h89, &hA6, &h55, &hDE})
Dim Shared EncoderScanMethod       AS GUID = Type(&h3A4E2661, &h3109, &h4E56, {&h85, &h1E, &h9F, &h7E, &h42, &h9F, &h1A, &h22})
Dim Shared EncoderTransformation   AS GUID = Type(&h8D0EB2D1, &h6A48, &h4A94, {&hAC, &h61, &h52, &h95, &hC7, &h2E, &h8E, &h33})
Dim Shared EncoderVersion          AS GUID = Type(&h24D18C76, &h814A, &h41A4, {&hBF, &h53, &h1C, &h21, &h9C, &hCC, &hF7, &h97})

EncoderParameters

An EncoderParameters structure is an array of EncoderParameter structures along with a data member that specifies the number of EncoderParameter structures in the array.

Member Description
Count UINT. Number of EncoderParameter structures in the array.
Parameter Array of EncoderParameter structures.

ENHMETAHEADER

The ENHMETAHEADER structure contains enhanced-metafile data such as the dimensions of the picture stored in the enhanced metafile, the count of records in the enhanced metafile, the resolution of the device on which the picture was created, and so on.

This structure is always the first record in an enhanced metafile.

[ENHMETAHEADER structure] (https://learn.microsoft.com/en-us/windows/win32/api/wingdi/ns-wingdi-enhmetaheader)


GdiplusStartupInput

The GdiplusStartupInput structure holds a block of arguments that are required by the GdiplusStartup function.

Member Description
GdiplusVersion UINT32. Specifies the version of Microsoft Windows GDI+. Must be 1.
DebugEventProc Pointer to a callback function that GDI+ can call, on debug builds, for assertions and warnings. The default value is NULL.
SuppressBackgroundThread BOOL. Boolean value that specifies whether to suppress the GDI+ background thread. If you set this member to TRUE, GdiplusStartup returns (in its output parameter) a pointer to a hook function and a pointer to an unhook function. You must call those functions appropriately to replace the background thread. If you do not want to be responsible for calling the hook and unhook functions, set this member to FALSE. The default value is FALSE.
SuppressExternalCodecs BOOL. Boolean value that specifies whether you want GDI+ to suppress external image codecs. GDI+ version 1.0 does not support external image codecs, so this parameter is ignored.

Remarks

The GdiplusStartupInput structure provides a constructor that sets the GdiplusVersion member to 1 and allows you to specify values for the other three members. All of the constructor parameters are optional, so you can declare a variable of type GdiplusStartupInput without passing any arguments to the constructor, and all of the members will be initialized with appropriate default values.

If you set the SuppressBackgroundThread member of the GdiplusStartupinput parameter to TRUE, you must call the hook and unhook functions returned in the output parameter. Call those functions before and after the application’s main message loop; that is, a message loop that is active for the lifetime of GDI+. Call the hook function before the loop starts, and call the unhook function after the loop ends.


GdiplusStartupOutput

The GdiplusStartup function uses the GdiplusStartupOutput structure to return (in its output parameter) a pointer to a hook function and a pointer to an unhook function. If you set the SuppressBackgroundThread member of the input parameter to TRUE, then you are responsible for calling those functions to replace the Microsoft Windows GDI+ background thread.

Call the hook and unhook functions before and after the application’s main message loop; that is, a message loop that is active for the lifetime of GDI+. Call the hook function before the loop starts, and call the unhook function after the loop ends. The token parameter of the hook function receives an identifier that you should later pass to the unhook function. If you do not pass the proper identifier (the one returned by the hook function) to the unhook function, there will be resource leaks that won’t be cleaned up until the process exits.

If you do not want to be responsible for calling the hook and unhook functions, set the SuppressBackgroundThread member of the input parameter (passed to GdiplusStartup) to FALSE.

Member Description
NotificationHook Receives a pointer to a hook function.
NotificationUnhook Receives a pointer to a unhook function.

GpCharacterRange

A CharacterRange structure specifies a range of character positions within a string.

Member Description
First INT. Specifies the first position of this range.
Length INT. Specifies the number of positions in this range.

Remarks

A character range is a range of character positions within a string of text. The area of the display that is occupied by a group of characters that are specified by the character range is the bounding region. A character range is set by GdipSetStringFormatMeasurableCharacterRanges. The number of ranges that are currently set can be determined by calling GdipGetStringFormatMeasurableCharacterRangeCount. This number is also the number of regions expected to be obtained by the GdipMeasureCharacterRanges function.


GpColorMap

The ColorMap structure contains two COLORREF values. Several of the ImageAttributes functions adjust image colors by using a color remap table, which is an array of ColorMap structures.

Renamed as GpColorMp because there is a GDI ColorMap structure with different member names.

Member Description
oldColor COLORREF. The original color.
newColor COLORREF. The new color.

GpPathData

The PathData structure is used by the GdipGetPathData function. It has an array of points and an array of types. Each element in the array of types is a byte that specifies the point type and a set of flags for the corresponding element in the array of points. You can use a PathData structure to get or set the data points (and their types) of a path.

Member Description
Count INT. Number of elements in the Points array.
Points GpPointF PTR. Pointer to an array of GpPointF objects that contains the path points.
Types BYTE PTR. pointer to an array of bytes that contains the point types.

GpPointF

Encapsulates a point in a 2-D coordinate system.

Member Description
x REAL. Horizontal coordinate.
y REAL. Vertical coordinate.

GpRectF

Stores the upper-left corner, width, and height of a rectangle.

Member Description
x REAL. Horizontal coordinate.
y REAL. Vertical coordinate.
Width REAL. The width of the rectangle.
**Heighjt* REAL. The height of the rectangle.

GpSizeF

The GpSizeF structure encapsulates a Width and Height dimension in a 2-D coordinate system.

Member Description
Width REAL. The width measurement.
Height REAL. The height measurement.

HueSaturationLightnessParams

The HueSaturationLightnessParams structure contains members that specify hue, saturation and lightness adjustments to a bitmap.

You can adjust the hue, saturation, and lightness of a bitmap by following these steps.

  1. Create and initialize a HueSaturationLightnessParams structure.
  2. Pass the address of the HueSaturationLightnessParams structure to the GdipSetEffectParameters function.
Member Description
hueLevel INT. Integer in the range -180 through 180 that specifies the change in hue. A value of 0 specifies no change. Positive values specify counterclockwise rotation on the color wheel. Negative values specify clockwise rotation on the color wheel.
saturationLevel INT. Integer in the range -100 through 100 that specifies the change in saturation. A value of 0 specifies no change. Positive values specify increased saturation and negative values specify decreased saturation.
lightnessLevel INT. Integer in the range -100 through 100 that specifies the change in lightness. A value of 0 specifies no change. Positive values specify increased lightness and negative values specify decreased lightness.

Remarks: Minimum availability: GDI+ 1.1


ImageCodecInfo

An ImageCodecInfo structure stores information about an image codec (encoder/decoder). GDI+ provides several built-in image codecs. You can obtain information about those codecs by calling the GetImageEncoders function and the GetImageDecoders function. Each of those functions returns an array of ImageCodecInfo structures, one for each available encoder or decoder.

Member Description
Clsid CLSID. Codec identifier.
FormatID GUID. File format identifier. GUIDs that identify various file formats (ImageFormatBMP, ImageFormatEMF, and the like) are defined in “GdiPlus constamts”.
CodecName WSTRING PTR. Pointer to a null-terminated wide string that contains the codec name.
DllName WSTRING PTR. Pointer to a null-terminated wide string that contains the path name of the DLL in which the codec resides. If the codec is not in a DLL, this pointer is NULL.
FormatDescription WSTRING PTR. Pointer to a null-terminated wide string that contains the name of the file format used by the codec.
FilenameExtension WSTRING PTR. Pointer to a null-terminated wide string that contains all file-name extensions associated with the codec. The extensions are separated by semicolons.
MimeType WSTRING PTR. Pointer to a null-terminated wide string that contains the mime type of the codec.
Flags DWORD. Combination of flags from the ImageCodecFlags enumeration.
Version DWORD. Integer that indicates the version of the codec.
SigCount DWORD. Integer that indicates the number of signatures used by the file format associated with the codec.
SigSize DWORD. Integer that indicates the number of bytes in each signature.
SigPattern BYTE PTR. Pointer to an array of bytes that contains the pattern for each signature.
SigMask BYTE PTR. Pointer to an array of bytes that contains the mask for each signature.

LevelParams

The LevelsParams structure contains members that specify adjustments to the light, midtone, or dark areas of a bitmap.

You can adjust the light, midtone, or dark areas of a bitmap by following these steps.

  1. Create and initialize a LevelsParams structure.
  2. Pass the address of the LevelsParams structure to the GdipSetEffectParameters function.
Member Description
highlight INT. Integer in the range 0 through 100 that specifies which pixels should be lightened. You can use this adjustment to lighten pixels that are already lighter than a certain threshold. Setting highlight to 100 specifies no change. Setting highlight to t specifies that a color channel value is increased if it is already greater than t percent of full intensity. For example, setting highlight to 90 specifies that all color channel values greater than 90 percent of full intensity are increased.
midtone INT. Integer in the range -100 through 100 that specifies how much to lighten or darken an image. Color channel values in the middle of the intensity range are altered more than color channel values near the minimum or maximum intensity. You can use this adjustment to lighten (or darken) an image without loosing the contrast between the darkest and lightest portions of the image. A value of 0 specifies no change. Positive values specify that the midtones are made lighter, and negative values specify that the midtones are made darker.
shadow INT. Integer in the range 0 through 100 that specifies which pixels should be darkened. You can use this adjustment to darken pixels that are already darker than a certain threshold. Setting shadow to 0 specifies no change. Setting shadow to t specifies that a color channel value is decreased if it is already less than t percent of full intensity. For example, setting shadow to 10 specifies that all color channel values less than 10 percent of full intensity are decreased.

Remarks: Minimum availability: GDI+ 1.1


MetafileHeader

A MetafileHeader object stores properties of an associated metafile.

Member Description
Type UINT. The type of metafile (e.g., WMF, EMF, EMF+).
Size UINT. The total size of the metafile in bytes.
Version UINT. The metafile’s version.
EmfPlusFlags UINT. An unsigned integer that contains information about how this metafile was recorded.
DpiX/DpiY UINT. The resolution of the metafile in pixels per inch, for a rasterized image.
DpiY UINT. The vertical resolution of the metafile in pixels per inch, for a rasterized image
X/Y/Width/Height INT. The bounding box of the metafile in device units (pixels).
X/Y/Width/Height INT. The bounding box of the metafile in device units (pixels).
EmfPlusHeaderSize INT. The size of the EMF+ header, if present.
WmfHeader/EmfHeader Umion of METAHEADER (for WMF files) and ENHMETAHEADER3 (for EMF files) structures
LogicalDpiX/LogicalDpiY INT. The logical DPI of the reference device context, which can be used to convert between device and logical units.

Metafile type

Constant Description
MetafileTypeInvalid Specifies a metafile format that is not recognized in GDI+.
MetafileTypeWmf Specifies a WMF file. Such a file contains only GDI records.
MetafileTypeWmfPlaceable Specifies a WMF file that has a placeable metafile header in front of it.
MetafileTypeEmf Specifies an EMF file. Such a file contains only GDI records.
MetafileTypeEmfPlusOnly Specifies an EMF+ file. Such a file contains only GDI+ records and must be displayed by using GDI+. Displaying the records using GDI may cause unpredictable results.
MetafileTypeEmfPlusDual Specifies an EMF+ Dual file. Such a file contains GDI+ records along with alternative GDI records and can be displayed by using either GDI or GDI+. Displaying the records using GDI may cause some quality degradation.

Remarks

Metafiles provide a device-independent and application-independent way to share pictures. They contain records that describe a sequence of graphics application programming interfaces (APIs) to invoke in a particular order with their associated graphics data. Metafiles can be recorded by an application and later played back by that application or by another one to reproduce a particular picture. They can also be used to send content to a print spooler. Enhanced metafiles support the ability to provide both Microsoft Windows GDI+ and Windows Graphics Device Interface (GDI) descriptions of the same picture so that both GDI+ and down-level GDI applications can render it.


PropertyItem

A PropertyItem structure holds one piece of image metadata.

Member Description
id PROPID. Integer that identifies the kind of metadata stored in this PropertyItem object. Constants that identify various kinds of metadata (PropertyTagEquipMake, PropertyTagEquipModel, and the like) are defined in “GdiPlus constamts”.
length ULONG. Size, in bytes, of the value array.
type WORD. Integer that identifies the data type of the values in the value array. Constants that identify various data types (PropertyTagTypeByte, PropertyTagTypeASCII, and the like) are defined in “GdiPlus constamts”.
value ANY PTR. Pointer to an array of values. Each value in the array has the data type specified by the type data member.

PWMFRect16

The PWMFRect16 structure defines a rectangle that bounds a placeable metafile. The rectangle defines the size and position of the metafile.

Member Description
Left INT16. Left coordinate of the rectangle that bounds the metafile.
Top INT16. Top coordinate of the rectangle that bounds the metafile.
Right INT16. Right coordinate of the rectangle that bounds the metafile.
Bottom INT16. Bottom coordinate of the rectangle that bounds the metafile.

RedEyeCorrectionParams

A RedEyeCorrectionParams structure contains members that specify the areas of a bitmap to which a red-eye correction is applied.

You can can correct red eyes in a bitmap by following these steps.

  1. Create and initialize a RedEyeCorrectionParams structure.
  2. Pass the address of the RedEyeCorrectionParams structure to the GdipSetEffectParameters function.
Member Description
numberOfAreas UINT. Integer that specifies the number of RECT structures in the areas array.
areas RECT PTR. Pointer to an array of RECT structures, each of which specifies an area of the bitmap to which red eye correction should be applied.

Remarks: Minimum availability: GDI+ 1.1


SharpenParams

The SharpenParams structure contains members that specify the nature of a sharpening adjustment to a bitmap.

You can adjust the sharpness of a bitmap by following these steps.

  1. Create and initialize a SharpenParams structure.
  2. Pass the address of the SharpenParams structure to the GdipSetEffectParameters function.
Member Description
radius REAL. Real number that specifies the sharpening radius (the radius of the convolution kernel) in pixels. The radius must be in the range 0 through 255. As the radius increases, more surrounding pixels are involved in calculating the new value of a given pixel.
amount REAL. Real number in the range 0 through 100 that specifies the amount of sharpening to be applied. A value of 0 specifies no sharpening. As the value of amount increases, the sharpness increases.

Remarks: Minimum availability: GDI+ 1.1


TintParams

A TintParams structure contains members that specify the nature of a tint adjustment to a bitmap.

You can adjust the tint of a bitmap by following these steps.

  1. Create and initialize a TintParams structure.

  2. Pass the address of the TintParams structure to the GdipSetEffectParameters function.

Member Description
hue INT. Integer in the range -180 through 180 that specifies the hue to be strengthened or weakened. A value of 0 specifies blue. A positive value specifies a clockwise angle on the color wheel. For example, positive 60 specifies cyan and positive 120 specifies green. A negative value specifies a counter-clockwise angle on the color wheel. For example, negative 60 specifies magenta and negative 120 specifies red.
amount INT. Integer in the range -100 through 100 that specifies how much the hue (given by the hue parameter) is strengthened or weakened. A value of 0 specifies no change. Positive values specify that the hue is strengthened and negative values specify that the hue is weakened.

Remarks: Minimum availability: GDI+ 1.1


WmfPlaceableFileHeader

The WmfPlaceableFileHeader structure defines the fields of a placeable metafile header. Placeable metafiles were created as a way of specifying how a metafile is mapped and scaled on a display device.

Member Description
Key UINT32. Identification value that indicates the presence of a placeable metafile header. This value is always &h9AC6CDD7.
Hmf INT16. Handle to the metafile in memory. When written to disk, this field is not used and will always contains the value 0.
BoundingBox PWMFRect16. Destination rectangle, measured in twips, for displaying the metafile.
Inch INT16. Number of twips per inch used to represent the image. Normally, there are 1440 twips per inch; however, this number can be changed to scale the image.
A value of 720 specifies that the image is twice its normal size.
A value of 360 specifies that the image is four times its normal size.
A value of 2880 specifies that the image is half its normal size.
Reserved UINT32. Not used and is always set to 0.
Checksum INT16. Checksum for the previous 10 WORDs in the header. This value can be used to determine whether the metafile has become corrupted.

Remarks

Although placeable metafiles are quite common, they are not directly supported by the Microsoft Windows application programming interface (API). To display a placeable metafile using the Windows API, you must first strip the placeable metafile header from the file. This is typically performed by copying the metafile to a temporary file starting at file offset 22 (0x16). This is because each placeable metafile begins with a 22-byte header that is followed by a standard metafile.